#include <stdio.h>
#include <string.h>


typedef struct 
{
	int x,y;
}coo;

struct asdf
{
	coo point[150];
	int num;
	char put;
}tt[300];

int n,tot;
int len=20;
char map[550][250];
char sign[550][250];


void find()
{
	int fi,fj,k;	
	for (fi=0;fi<n;fi++)
		for (fj=0;fj<len;fj++)
			if (map[fi][fj]>='A' && map[fi][fj]<='Z')
			{		
					k=map[fi][fj]-'A';
					tt[k].num++;
					tt[k].point[tt[k].num].x=fi;
					tt[k].point[tt[k].num].y=fj;
			}
	
}


int canput(int a)
{
	int k,x,y;
	char ch;
	ch=a+'A';
	for (k=1;k<=tt[a].num;k++)
	{
		x=tt[a].point[k].x;
		y=tt[a].point[k].y;
		if (x+1<n && map[x+1][y]!=46 && map[x+1][y]!=ch)
		{
			return 0;
		}		
	}
	for (k=1;k<=tt[a].num;k++)
	{
		map[ tt[a].point[k].x ][tt[a].point[k].y ]=46;
	}
	tt[a].put=1;
	return 1;
}


int main()
{
	int i,j,k;
	char ch;
	

	ch=46;
	memset(tt,0,sizeof(tt));
	memset(map,ch,sizeof(map));
	memset(sign,0,sizeof(sign));
	

	scanf("%d", &n);
	for (i=0;i<n;i++)
		scanf("%s", map[i]);
	
	len=strlen(map[1]);
	tot=0;

	find();
	

	int flag;
	while (1)
	{
		flag=0;
		for (ch='A';ch<='Z';ch++)
		{
			k=ch-'A';
			if (  tt[k].num && tt[k].put==0)
				if (canput(k))
				{
			
					printf("%c",ch);
					flag=1;

					break;
				}

		}
		if (flag==0) break;

	}
	printf("\n");



	return 0;
}